#include <iostream>
#include <string>

using namespace std;

class NewLog {
    public:
        const int LogLevelError = 0;
        const int LogLevelWaring = 1;
        const int LogLevelInfo = 2;
        const int LogLevelDebug = 3;
    private:
        int m_Loglevel = LogLevelInfo;
    public:
        void SetLevel(int level){
            m_Loglevel = level;
        }
        void Debug(const char* message){
            if (m_Loglevel >= LogLevelDebug)
                cout << "[DEBUG]:" << message << endl;
        }
        void Error(const char* message){
            if (m_Loglevel >= LogLevelError)
                cout << "[ERROR]:" << message << endl;
        }
        void Waring(const char* message){
            if (m_Loglevel >= LogLevelWaring)
                cout << "[WARING]:" << message << endl;
        }
        void Info(const char* message){
            if (m_Loglevel >= LogLevelInfo)
                cout << "[INFO]:" << message << endl;
        }
};

int main () {
    NewLog logs;
    logs.SetLevel(logs.LogLevelInfo);
    logs.Debug("Hello");
    logs.Error("Hello");
    logs.Waring("Hello");
    logs.Info("hello");
    return 0;
}